package org.example.study3;

public class Demo_302 {

    public static void main(String[] args) {
        // 遍历线程状态的枚举值
        for (Thread.State state : Thread.State.values()) {
            System.out.println(state);
        }
    }
}

/*输出：
NEW
RUNNABLE
BLOCKED
WAITING
TIMED_WAITING
TERMINATED
*/

/*
输出：
        NEW         # 注：安排了⼯作,还未开始⾏动，没有调用start()方法之前是不会创建PCB的，和PCB无任何关系
        RUNNABLE    # 注：可⼯作的.⼜可以分成正在⼯作中和即将开始⼯作。运行+就绪的状态，在执行任务时最常见的的状态之一，在系统中有对应的PCB
        BLOCKED     # 注： 等待锁的状态，阻塞中的一种。等待监视器锁（如进入 synchronized 代码块）
        WAITING     # 注：线程无限期等待其他线程的唤醒（如调用 Object.wait() 或 Thread.join()）
        TIMED_WAITING #注：指定了等待时间的阻塞状态，过时不候。线程在指定时间内等待（如 Thread.sleep(1000) 或带超时的 Object.wait()）
        TERMINATED    #注：结束，完成状态，PCB已经销毁，但是Java线程对象还在*/
